#include <iostream>
#include <set>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>

using namespace std;

char findMinNumber(string num, int start, int k, int &idx) {
	int id = start;
	char c = num[start];
	for (int i = 1; i < k; ++i) {
		if (num.length() < start + i ) {
			break;
		}
		if (num[start+i] < c) {
			c = num[start +i];
			id = start+i;
		}
	}
	idx = id + 1;
	if (c != '0') {
		cout << start << " " << k << endl;
}
	return c;
}
string removeKdigits2(string num, int k) {
		 string res = "";
        int n = num.size(), keep = n - k;
        for (char c : num) {
            while (k && res.size() && res.back() > c) {
                res.pop_back();
                --k;
            }
            res.push_back(c);
        }
		cout << res << endl;
        res.resize(keep);
        while (!res.empty() && res[0] == '0') res.erase(res.begin());
        return res.empty() ? "0" : res;
}
string removeKdigits(string num, int k) {
	int m = num.length() - k;
	if (m <= 0) {
		return "0";
	}
	string res;
	int count = 0;
	for (int i = 0; i < num.length(); ) {
		int end_idx;
		int end = (num.length() - i ) -  (m - count) + 1;	
		auto c = findMinNumber(num, i, end, end_idx); 
		res.push_back(c);
		i = end_idx;
		if (res.size() == m) {
			break;
		}
		count++;
	}
	cout << res << endl;
	bool find = false;
	string result;
	for (auto c : res) {
		if (find) {
			result.push_back(c);
		} else if (c != '0') {
			find = true;
			result.push_back(c);
		}
	}
	if (result.empty()) {
		return "0";
	}
	return result;

}

void test() {
	string s = "42767854615790820292944831840714943359894187047948450037336809401264092298894490339723170235305129677267060933619172682578764724528024649451075131679109777263591648456729485464839877320061461069243974933498371934575012528555827338953724780861662784034839154178040563249817555067081448332223588411419168442553970020118370358794959779864819714402968003470365044797881527445340976945193818119467023653961507607672480115226579679195083984107550649620824228334531543881248523270728845883011347557806714125988595750797445903460187069102923827814511796767245574859856245433535202213866357865001893279481556044431076323101967578726169437167866864433985495890782177337227185218722003203201794524473658120818757906858018522776715639010350584179192618574032568118118609428514149350137179799798509363342933168141703795277960609902578193965353966732758522319326510476003141627976495471194647651191765940623801848650779996861991716801192868381714592671157213385358454372258678286185038661251898041199455484881497973936886129286780686747702354266676649133047345268803970772136574778724059680910889846701031833468068701979269662983956502485168033946609770137842651146059273082836506077338453677150197865590089199161058651336150874965473699606051616750107442277197178936688141691056518266386172813294511346655182323777419242146803539629808395049965699535272276902817614992917612927025979571436056418178949140225831714010026397581438647144388850448143782384993050908181782121784294922444218824177798052454616802442043385673094510700252387351590505241357656396376170570838637068429512330065547472613577751410152513915714166057883408992271281823592172333654887223386232551975763603851710020471730161184180640812534293795148973065648040320936081719321657015873251252438179935213522036777508405231559635933218588146968578575964379037900738820562221783370763718270548271942160879283346733139062721676158522361533668704462398258010274851756504022170692557968534354343300976925558662656552021225536052236166733671370810493478857779656160557033130699196730596823835866942383406014324343783777539237677792451989779191005800821612057527173069156047746886314264888886920021988864698336973375949221207087151293792642382667520852406157133901720414180577613687865572943934469907502558232579505371542207400025172278481715443291693401941467763248672444891029778464850850998910451866532251760265573729603802891979681199941199058262753251051247038814898450192160069049824567851341865948819288467203875175473770134200197684457826486518709881470102852093201457965720215213058487673191409542861896211110569915555788853974841074076366685605058887536260221712351483096796829688703805892797869297796003334770994443794789460259639436865437812910241961445382357524033812312224783435809748252815436505470248482168172542366777257733653560456219150752921112615226017071525633643673264241122463875175583077761780573333101393148223764295110530230833646717923630745738812086412736671406343368298252156032118474543057099651798412740139013104123480347608236951823601336247508674889789494483794628001425344165783788429049730291326775455015785327577865377064397566794918739831414079787693198248140637113125565595305998282580721676261634498566237966614318941397734268015425568890740425312778238252662876746954156253519077411732018085846119889733839268453412968907858943693089597738545774072868871022839381446938075550039536742864199000908389925554691777850180161524332130073243881970286384249150136987633055208076388268958344328919145620288311537387853748176907053434533948744876865239789707206727054699151876690589023127693784859005126867245144990541144502571475179281742590537105515917376706167473011218582298393879651200544930737095993892411425220115292455512046640587174478149165594377091626060310391405243838577142799370503965244703765138756627518023743947119802986986532252546116477951027231307131628103042104039629499919572735529345439335549727142664736202293026484344441050630567027253471369103560266482945879441209004770164675020115476783653466174012741661723993500655369697109626010269380076073933015864761704176611703072139146747597003865521022642104228419619843927108260238084570397138708740181474347163241522446780620603392403687603888076553679045954833871460870755109132271738691459746851320926797113625441143010401758187073392500078061166186149727409676020612731477477496862648324993156390312514509978182394005049176325656482925314334308846020046440000639094498194888324242274543355772503522914560552598223947118463742841515723677871749503874006924229568354106404788800337347740726960903805684221263837486950787248911647072244868181616958029769190594368044110679179639645980860201597430267777459655372871993352465518117174671133742384885531127239604520105123727230849911680326443684000340446147937873667767227624842441390296900995179520080641610292722850119464836580325090471323736225890294980142988595694394073053215895013346101834933981247547372697246437008031025334926870805534589643288626312674442549515696840972195844322623489776395993997725883102424374473386242230020052319139538725050694563793252575203302986006568926586341522483619750551265949811840701660706687971699572637332236706033725130460780147305930796689592739802762127602300331109088320407488753453562201443009583869340530260133192585867600117793558618622877626140608235883463446585052941889282771610713456594091731994663257672424562807919185250771570978748558016087655314386429181778154999037395977801201222536602668579318195917221851258101758083465833807764504478328133760033685582322103480724065531895932039917203779203156040553746346772387443929520551627122239575483559165994485703508677722865190370481258839816840706093115274279356732858077656941579688491810646089766375954256605013212947107680641700379830628558534532701353225658907237335822869646320919937486195881402477347072922997644748078880017641720321497893274887727279247817230724007001520405446788235407924339589275318658718824019308723325037628135839936194865389246778785484224136240513164802724185350906503263939998152201969404224284851353929162842159002494160461334274924788445418313020719064697643073211899597216839617241323956298475147631936745340993794786362122100021070985418754276295234662670333162104340353095385544657319880579379906274682249802800845859334842970692716308206359497045039047894058089399866389624780981978085896624346900360571598520216940381587071285958497155631482721452214648993874243450874956631856720123296440913509093669827146153180469767433504561046437484524515293979237377991209712765962632838588822180359961992788574139615251950913574644651207439995528858114472995911722528828790960400270676875166161939741700924096377882962772526118510149529098157733017933337496630319171190616687753486928733354625068986857196646261563989044574797981270617089057226390794666311751192327631540192548655459578506043592663616062769069836457346194068474176132510064511610117400341310411426000998578144122817400179584819131405912398612085587124626912794546013764785843274068027858995747888172680971572206968091015445337290861835783980747471461015521311208355915962202714480089884097249709377165451728632422251230084667248727648072440251993269156317610868685295846232492883010588697174635533597605834450249882921427658569868883414799635112078926523707047988262628826843234898036034699263633285219983947947102364186704490860419225940767023498819222899748637736136929299603365634669304329289193002180868079267831256753666692578016598885536576757243005565124272778934460000656133474422706312579704797332965888987321865639934115540341358438065159979966516649509059972742742859883148151328808103859578112480441464277834533174833896376621814776042440697291859846516369392086372254665861285937409320474020680208941413993134675771984152737919309617874095184511004441704637414657377204495521150940370391369816136133983987959653102357045282415379947968251076420098012505820501069271733453309150705588274173445852803861126110689326352001921046066346433959229953549279092972503658190837209557302503876248001129441633640343374507764567392795980560783306587466656895994346821030188171996741604459649768510697714192580042040101750692371398942842500442445462269343139517683266487839338542443169246460653530698650325346136357734184681042975047635944793223022235246268651870018710450581435529607254366048869493833744884331399960456341161524764264081615200455615465925723132075411240169896584999493701334792763601560521725937880035580427191600072833098777060365102978298741740559073275852763938780836609797603716875112885764040607658550533844408290490010802790842002942292935369291644839617793990910895308977723653062881593207714109720695034340437197019621968080117519794848132586742911614980669439330348142456126849768719198483462298008318935405664818315956667907954514033766806239587330742325680711653716183320470951491901907421070418246355033490024779722775524553362711286647617964163847164933401979458666304006708368763218332476561345205255639459643444256743045787508311558394991701816915267581835649555296896252897237006404723594796400109216516930136483261469100739753281302804818082275735965571356243205409672153514152830169411991633125429246600926046750109377245075186063774301024268884824103787866848063266853457600668442319180654169447895010411843408292686118099805402852556814966811008369348597110442872837094072059087232837205291461239853639994518924479438927379348327739109781565914159761167665584025124425923844801188360781762018699315163461229173330894272797116474430040071501881164984840886621509629770804885731934408262630754177569630312231904935609457496213783238786007928894185681679202644961896031520772120429456532334651866707926275039616875628244135012101648429121896413946679889877828086708457516884940565793756567939396973544976573326617620245079002790968407887831523704293463842790307287785628353910524550357149296905848302331279051221613790082068853444332742995671850649946821132877723913186786300652152247618157706125750578092402909964449626211673467131785274416643250628726377006207603592185";
	string t = "100926046750109377245075186063774301024268884824103787866848063266853457600668442319180654169447895010411843408292686118099805402852556814966811008369348597110442872837094072059087232837205291461239853639994518924479438927379348327739109781565914159761167665584025124425923844801188360781762018699315163461229173330894272797116474430040071501881164984840886621509629770804885731934408262630754177569630312231904935609457496213783238786007928894185681679202644961896031520772120429456532334651866707926275039616875628244135012101648429121896413946679889877828086708457516884940565793756567939396973544976573326617620245079002790968407887831523704293463842790307287785628353910524550357149296905848302331279051221613790082068853444332742995671850649946821132877723913186786300652152247618157706125750578092402909964449626211673467131785274416643250628726377006207603592185";
	int k = 8222;
	string str = removeKdigits(s, k);
	cout << str.length() << endl;
	cout << t.length() << endl;
	removeKdigits2(s, k);
	cout << str << endl;
}
void test1() {
	string s = "000214534325";
	int k = 8;
	string str = removeKdigits(s, k);
	cout << str << endl;
	
}

int main (int argc, char **argv) {
	test();
	return 0;
}
